Information retrieving and storing system and method

ABSTRACT

A computer and implemented process for retrieving and storing information to manage information in a computer system. The computer implemented process uses an input and a processing means, with the input arranged to obtain a statement. The processing means is arranged to select a first record based on an element of the statement. Then select a second record that references the first record. Next, examine the second record to identify a third record, and then retrieve the information by using the third record.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is an U.S. national phase application under 35 U.S.C.§371 based upon co-pending International Application No.PCT/AU2005/000695 filed on May 13, 2005. Additionally, this U.S.national phase application claims the benefit of priority of co-pendingInternational Application No. PCT/AU2005/000695 filed on May 13, 200 andAustralia Application No. 2004902570 filed on May 13, 2004. The entiredisclosures of the prior applications are incorporated herein byreference. The international application was published on Nov. 24, 2005under Publication No. WO 2005/111860 A1.

FIELD OF THE INVENTION

The present invention relates generally to a system and method forretrieving information, and a system and method for storing information.The present invention has particular—but by no meansexclusive—application to managing information stored in a computersystem.

BACKGROUND OF THE INVENTION

Today's information management systems have been designed to manageinformation (for example, retrieval or storage of information) based ona predefined information structure. The predefined information structurecomprises a number of distinct fields, which are used to represent aparticular type of information. For example, one of the fields may beused to store a person's telephone number whilst another of the fieldsmay be used to store the person's address. A problem associated withusing a predefined information structure is that unless a field has beenallocated for representing a particular type of information, it can bedifficult to readily store the particular type of information in thepredefined information structure. For example, existing systems designedto manage personal contact information (eg telephone number and address)generally do not have the ability to store the medical details of aperson. This is primarily due to the fact that the predefinedinformation structure used in systems designed to manage personalcontact do not have fields allocated for storing medical records.

There are two possible options for addressing the above problemassociated with employing a predefined information structure. A firstoption is to have the information management system modified such thatthe predefined data structure comprises the necessary field. A secondoption is to replace the existing information management system with anew system that is capable of managing the required information.Unfortunately, these two options are generally undesirable because theycan involve significant cost and can result in system downtime.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention there is provided asystem for retrieving information, the system comprising:

an input means arranged to obtain a statement; and

a processing means arranged to: select a first record based on anelement of the statement; select a second record that references thefirst record; examine the second record to identify a third record; andretrieve the information by using the third record.

Preferably, the processing means is arranged to select the first recordby: locating a fourth record that comprises information corresponding tothe element; obtaining an identifier of the fourth record; anddetermining whether the first record comprises the identifier, whereinthe first record is selected if it is determined that it comprises theidentifier.

Preferably, the processing means is arranged to retrieve the informationby: examining the third record to identify at least one fifth record;and obtaining the information from the at least one fifth record.

Preferably, the input means comprises:

an interface arranged to receive a natural language statement; and

a parser arranged to create an intermediate language statement based ona parsing of the natural language statement, wherein the processingmeans is arranged to use the intermediate language statement as thestatement.

Preferably, the third record is associated with the first record.

Preferably, the first, second, third, fourth and fifth record arecontained in a single table.

According to a second aspect of the present invention there is provideda system for storing information, the system comprising:

an input means arranged to obtain a statement; and

a processing means arranged to: create a first record that can beidentified based on an element of the statement; create a second recordthat references the first record and which can be examined to identify athird record; and arranging the third record such that it can be used toretrieve the information.

Preferably, the processing means is arranged to create the first recordby: creating a fourth record that comprises information corresponding tothe element; obtaining an identifier of the fourth record; and settingthe first record such that it comprises the identifier.

Preferably, the processing means is arranged to arrange the third recordsuch that it can be examined to identify at least one fifth record, theprocessing means arranged to create the fifth record such that itcomprises the information.

Preferably, the input means comprises:

an interface arranged to receive a natural language statement; and

a parser arranged to create an intermediate language statement based ona parsing of the natural language statement, wherein the processingmeans is arranged to use the intermediate language statement as thestatement.

Preferably, the third record is associated with the first record.

Preferably, the first, second, third, fourth and fifth record arecontained in a single table.

According to a third aspect of the present invention there is provided amethod of retrieving information, the method comprising the steps of:

obtaining a statement;

selecting a first record based on an element of the statement;

selecting a second record that references the first record;

examining the second record to identify a third record; and

retrieving the information by using the third record.

Preferably, the step of selecting the first record comprises the stepsof:

locating a fourth record that comprises information corresponding to theelement;

obtaining an identifier of the fourth record; and

determining whether the first record comprises the identifier,

wherein the first record is selected if it is determined that itcomprises the identifier.

Preferably, the step of retrieving the information comprises: examiningthe third record to identify at least one fifth record; and obtainingthe information from the at least one fifth record.

Preferably, the step of obtaining the statement comprises:

receiving a natural language statement;

creating an intermediate language statement based on a parsing of thenatural language statement; and

using the intermediate language statement as the statement.

Preferably, the third record is associated with the first record.

Preferably, the first, second, third, fourth and fifth record arecontained in a single table.

According to a fourth aspect of the present invention, there is provideda method of storing information, the method comprising the steps of:

obtaining a statement;

creating a first record that can be identified based on an element ofthe statement;

creating a second record that references the first record and which canbe examined to identify a third record; and

arranging the third record such that it can be used to retrieve theinformation.

Preferably, the step of creating the first record comprises:

creating a fourth record that comprises information corresponding to theelement;

obtaining an identifier of the fourth record; and

setting the first record such that it comprises the identifier.

Preferably, the step of arranging the third record comprises the stepsof:

arranging the third record such that it identifies at least one fifthrecord; and

arranging the fifth record such that it comprises the information.

Preferably, the step of obtaining the statement comprises:

receiving a natural language statement;

creating an intermediate language statement based on a parsing of thenatural language statement; and

using the intermediate language statement as the statement.

Preferably, the third record is associated with the first record.

Preferably, the first, second, third, fourth and fifth record arecontained in a single table.

According to a fifth aspect of the present invention there is provided acomputer program comprising at least one instruction for causing acomputing device to carry out the method according to the third orfourth aspect of the present invention.

According to a sixth aspect of the present invention there is provided acomputer readable medium comprising the computer program according tothe fifth aspect of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Notwithstanding any other embodiments that may fall within the scope ofthe present invention, an embodiment of the present invention will nowbe described, by way of example only, with reference to the accompanyingfigures, in which:

FIG. 1 illustrates an embodiment of the present invention;

FIG. 2 illustrates a graphical user interface used in the embodiment ofthe present invention illustrated in FIG. 1;

FIG. 3 illustrates a table maintained by the embodiment of the presentinvention shown in FIG. 1;

FIGS. 4 a to 4 c illustrates an example of the way in which informationis stored by the embodiment of the present invention shown in FIG. 1;

FIG. 5 shows a flow chart of the various steps performed by the systemof FIG. 1 when storing information;

FIG. 6 shows a flow chart of steps performed by the system of FIG. 1when retrieving information; and

FIG. 7 illustrates the arrangement of information stored by the systemof FIG. 1.

AN EMBODIMENT OF THE INVENTION

FIG. 1 illustrates an embodiment of the present invention. Theembodiment comprises a personal computer 1 that is installed with theMICROSOFT WINDOWS™ operating system. In addition to the operatingsystem, the personal computer 1 is installed with information managementsoftware that can be used by a user of the computer 1 to manageinformation. The information management software is such that it can beused to manage a diverse range of information such as contact detailsfor a group of people or a set of medical records.

The information management software comprises a first module that isoperable to present an interface 3 in the form of a graphical userinterface (GUI), which is illustrated in FIG. 2. The interface 3comprises a dialog box 5, which a user can type in a natural languagestatement using a keyboard 7 that is connected to the computer 1. Theinformation management software is such that it has the capability toreceive natural language statements in a variety of languages. Anexample of a natural language statement might be “my car registration isdue on 15 Apr. 2005” or “when is my car renewal due?”. One of the uniqueaspects of the embodiment of the present invention is that a user canmanage information using natural language statements, which provides theadvantage of being easy to use and avoids the undesirable requirement ofhaving to learn a special computer language to manage information.

The information management software comprises a second module that isoperable to function as a parser for parsing natural language statementsreceived by the interface 3. The parser is basically operable to createan intermediate language statement from a parsing of a natural languagestatement. In order to create the intermediate language statement theparser is capable of parsing a natural language statement into subjectand predicate, identifying the nouns and qualifying adjectives in thesubject and object as well as the verb and the type of relationship itimplies.

In addition to being able to parse natural language statements, thesecond module has the ability to recognise patterns in natural languagestatements and use the patterns to deduce the type of data so that theinput (natural language statement) can be accurately transformed into anintermediate language statement. The information management software issuch that pattern definitions are stored in a Knowledge Base (which isdescribed in more detail in the following paragraphs of thespecification). Pattern definitions on the Knowledge Base can be addedor old patterns definitions edited or deleted. The second module isoperable to handle the following control patterns:

-   -   Optional—The following pattern is optional. Do not fail the        pattern match if it does not appear in the target (input being        matched).    -   Multiple—the following pattern may occur multiple times in the        target. Continue to match each repetition until a non-match is        found. Unless the optional pattern precedes the multiple        patterns, there must be at least one occurrence of a multiple        pattern in the target.

The pattern matching ability of the second module is also such that itcan handle patterns embedded in patterns—a parent pattern can have achild pattern. For example, if a pattern for a statement is defined as“Subject Predicate”, the second module is such that it looks for furtherpattern Knowledge Items in the “Subject” and “Predicate” Knowledge Itemsuntil it locates Knowledge Objects that have no further patternKnowledge Items. The concept of a Knowledge Item and Knowledge Object isdescribed in detail in the following paragraphs of the specification.

The pattern matching ability of the second module is also such that itcan handle multiple child patterns for a parent pattern. For example, ifthat natural language statement is considered to be a “Sentence”, aSentence pattern may have the following child patterns:

-   -   Command    -   Statement    -   Question

The intermediate language comprises a set of operators (the actualsymbols used as operators are only significant in terms of theinterpreter software that needs to decode these statements). Some of thesymbols used in the embodiment are as follows:

= Is & Has a non-exclusive property (Create a new instance if it doesn'texist). Do not invalidate any other instances of this property. . Has anexclusive property (Create a new instance if it doesn't exist).Invalidate any other instances of this property > Action ( ) Used toenclose attributes : Separates concept and value in an attribute ,Separates attributes. / Divides the subject from the object in a path. !Not * New Instance or Concept. Create a new Knowledge Item if an exactmatch does not exist. ? When placed on the end of a Path, indicates anenquiry not a statement ~n Used in the Value field of the KnowledgeBase. Precede each Knowledge Object Id when one or more Knowledge ObjectIds are encoded in an ASCII data stream. ‘n’ is used to indicate thenumber of digits in the Knowledge Object Id. This is by way of exampleonly. Some other options for encoding Knowledge Object Ids in a text orother data stream could use a fixed length field ASCII field or a fixedlength binary data field, identified by a defined preceding escapecharacter.

The actual words used in the intermediate language statements can befrom any human language, or can also be symbolic information such aspattern masks or mathematical formulae. An example of an intermediatelanguage statement is: Jack.hair/(colour:black, length:short), whichwould work just as well in French: Jacques.cheveux/(couleur:noir,longueur:court). This example of an intermediate language statementwould be interpreted from an English sentence along the lines of “Jackhas short black hair”.

In addition to the first module and the second module, the informationmanagement software comprises a third module that is responsible formanaging information; that is for example, storing and retrievinginformation. In order to manage information, the third module basicallyuses intermediate language statements created by the second module tomanage the information. Before describing how the third module uses anintermediate language statement, it is prudent to describe the manner inwhich information is stored.

In the present embodiment the computer 1 is loaded with MICROSOFTACCESS™ relational database as the underlying facility for storinginformation. It will be appreciated by those skilled in the art that thecomputer 1 can by arranged to use alternative databases as theunderlying facility for storing information. The third module is suchthat it uses a table, herein after referred to the Knowledge Base, whichis shown in FIG. 3. The Knowledge Base comprises a variable number ofrecords, referred to herein after as Knowledge Items. The KnowledgeItems are effectively the rows in the table shown in FIG. 3. Acollection of related Knowledge items represent a Knowledge Object. Ascan be seen from FIG. 3, each of the Knowledge items contains a numberof fields. The following provides a description on the informationcontained in each of the fields:

-   -   Id—A unique field to identify each Knowledge Item.    -   Concept—An optional field to identify whether this field is a        concept or an instance of a piece of knowledge. This is optional        because the same information can be encoded as a discrete        Knowledge Item, but it is faster and more compact to record it        in a field of the Knowledge Item.    -   Relationship—Indicates the relationship between this Knowledge        Item and the Knowledge Object that it belongs to. Examples of        relationships are “is”, “has” and “does”. “Does” can be        associated with all sorts of actions (verbs). This field also        encodes the tense of the relationship—past, present or future.    -   Negate—Negates the relationship field to create “is not”, “has        not” and “does not” style relationships.    -   Parent_Id—Links Knowledge Items together to form a Knowledge        Object. All Knowledge Items sharing the same Parent_Id are        closely related and comprise a single Knowledge Object.    -   Concept_Id—A pointer to another Knowledge Item in the Knowledge        Base. This field is used to indicate the concept Knowledge        Object of the current Knowledge Item. (Eg. If a Knowledge Object        has previously been defined for “colour” and the current        Knowledge Item is part of the Knowledge Object for “Red”. The        current Knowledge Item will state that “Red is a colour” if the        Relationship is “is” and the Concept_Id points to the Knowledge        Object for “colour”).    -   Value_Id—A pointer to another Knowledge Item in the Knowledge        Base. This field is used to indicate the value Knowledge Object        of the current Knowledge Item. (For example assume a Knowledge        Object has previously been defined for “red” and another        Knowledge Object has previously been defined for “colour”. The        current Knowledge Item is part of the Knowledge Object for        “Jack's hair”. The current Knowledge Item will state that “Jack        has red hair” if the Relationship is “has” and the Concept_Id        points to the Knowledge Object for “colour” and the Value_Id        points to the Knowledge Object for “red”.    -   Value—Contains any sort of binary data. It is for encoding        information that cannot be pointed to by a single Value_Id        field. Examples might be text, a pattern of Encoded Value_Id's        and other data, audio or video data.    -   Valid—A flag (Boolean style field) which can be cleared when        information stored in a Knowledge Item is no longer valid, but        is stored for historical information purposes.

To illustrate how the information management software enablesinformation to be stored, consider the example of a user wanting tostore information on the fact that a person called Jack has short blackhair. To do this a user could simply type into the dialog box 5 “Jackhas short black hair”. The second module would convert this naturallanguage statement into the following intermediate language statement:Jack.hair/(colour:black, length:short). With reference to the tablesshown in FIG. 4, the intermediate language statement would then bepassed to the third module, which attempts to locate all KnowledgeObjects that contain a Knowledge Item having the word “Jack” in theValue field, a relationship of “Is” and a CId of B3 (B3 is the KnowledgeObject for the concept of an English Name). The Knowledge Object at B1satisfies these conditions and therefore is the Knowledge Object for theEnglish name Jack. Having located the Knowledge Object for the word“Jack”, the next step is to find the Knowledge Object for Jack himself.This is done by locating all Knowledge Objects having a relationship of“Has”, CId of B3 (English Name) and a VId of B1. The Knowledge Object atA1 satisfies these conditions and therefore it can be assumed that thisKnowledge Object “has an English name of Jack”. It is the KnowledgeObject for Jack (JackKO) himself. If there is more than one KnowledgeObject that suits the criteria, the interpreter will need to prompt forfurther information before continuing.

After the only (or correctly identified) Jack Knowledge Object (A1) islocated in the Knowledge Base, the third module will store thisKnowledge Object Id and move to the next word in the intermediatelanguage statement—“hair” and repeat the search process. This willinvolve locating all Knowledge Objects with Relationship of “Is”, a CIdof B2 (English Word) and a VId of “hair”. C1 is the result. The thirdmodule will then proceed to locate Knowledge Objects with relationshipof “Has”, a CId of B2 (English word) and a VId of C1. A3 is the result.It is the Knowledge Object for the concept of hair (HairKO).

Having identified the first two Knowledge Objects from the intermediatelanguage statement, “Jack.hair” can be substituted with “A1.A3”. Thenext step is to determine if this part of the intermediate languagestatement can be resolved. The “.” Operator implies a “Has”relationship, so the third module must check if Knowledge Object A1contains a Knowledge Item with a “Has” relationship and a CId of A3.This is found at line 3 of Knowledge Object A1. This Knowledge Itemindicates the knowledge that “Jack has Hair”. If it did not exist, theKnowledge Base previously had no information that Jack had hair and willtherefore create the new Knowledge Item with this data.

To store the extra information regarding Jack's hair (colour andlength), a Knowledge Object is required. The VId of the Knowledge Item 3(A2) points to the Knowledge Object that contains this information. IfKnowledge Item 3 did not exist in the previous step, it means thatKnowledge Object A2 did not exist either and so the third module wouldneed to create Knowledge Object A2 (Jack.HairKO) and place its Id (A2)in the VId field of Knowledge Item 3. Having resolved the first part ofthe intermediate language statement “Jacks.hair” to Knowledge Object A3,the third module will move along the intermediate language statement tothe word pair “colour:black”. Knowledge Objects with Relationship of“Is”, a CId of B2 (English Word) and a VId of “colour” are then located.Resulting in the selection of C2.

The third module then locates Knowledge Objects with Relationship of“Has”, a CId of B2 (English word) and a VId of C2. C3 is the result. Itis the Knowledge Object for the concept of colour (ColourKO). Subsequentto which the third module would try to locate Knowledge Objects withRelationship of “Is”, a CId of B2(English Word) and a VId of “black”. C4is the result. Finally, the third module would locate Knowledge Objectswith Relationship of “Has”, a CId of B2 (English word) and a VId of C4.B4 is the result. It is the Knowledge Object for the concept of black(BlackKO).

Having located these Knowledge Objects, the third module searches A2(Jack.HairKO) for a Knowledge Object that has a Relationship of ‘Has’with a CId of C3 (ColourKO) and a VId of B4 (BlackKO). If this KnowledgeItem is found, it indicates that the Knowledge Base already knows thatJack's hair is black and no action is taken. If a Knowledge Item isfound which has a Relationship of ‘Has’ with a Cid of C3 (ColourKO) anda VId which is not equal to B4 (BlackKO), this Knowledge Item isinvalidated (IsValid set to false) and a new Knowledge Item is createdwhich has a Relationship of ‘Has’ with a CId of C3 (ColourKO) and a VIdof B4 (BlackKO). This process has changed Jack's hair colour fromwhatever it was previously to black. If, however, no Knowledge Item isfound, a new Knowledge Item is created which has a Relationship of ‘Has’with a CId of C3 (ColourKO) and a VId of B4 (BlackKO). This processrecords Jack's hair colour as black. The arrangement of he informationstored by the information management software is shown in FIG. 7.

Having resolved the colour part of the intermediate language statement,the third module will move along the intermediate language statement tothe word pair “length:short” and perform steps similar to those outlinedabove in order to resolve the final part of the statement.

The various steps that the information management software performs whenstoring information are shown in the flow chart of FIG. 5.

To illustrate how the information management software retrievesinformation, consider the following example. A user wishing to find outwhat colour hair Jack has could enter the following natural languagestatement into the dialog box 5: “what colour hair does Jack have?”.Passing this statement to the second module would result in theintermediate language statement, “Jack.Hair.Colour?”. Using thisintermediate language statement the third module would basically followthe previous described steps for identifying Knowledge Objects A1.A3.Once these Knowledge Objects have been identified, the third moduleproceeds to determine whether hair (A3) has the concept of colour. To dothis the third module attempts to locate a Knowledge Object that has aRelationship of “Is”, a CId of B2 (English word), and a Vid of colour.The result is C2. At this point the third software module proceeds tolocate a Knowledge Object with a Relationship of “Has”, CId of B2(English word) and a VId of C2. This results in C3 being identified.

At this point the third processing means knows that information aboutJack is contained in A1, that information about Jack's (A1) haircorresponds to the concept of A3 and that information about the colourof Jacks hair corresponds to the concept of C3. Therefore, in order toretrieve the colour of Jack's hair the third module turns to the Vidfield of A1 which corresponds to a Cid of A3, which results in A2. Thethird module then examines A2, in particular the Vid field of A2 thatcorresponds to a Cid of C3, which is B4. Because the Vid field of B4refers to C4 (the English word), the third module obtains the colour ofJacks hair by examining the Value field of C4, which is “Black”.

The word Black in the information field is then passed back to theinterface 3, which present the word Black in the dialog box 5. Thus,enabling a user to retrieve the information.

The various steps performed by the information management software whenretrieving information are shown in the flow chart of FIG. 6.

It will be appreciated by those skilled in the art that the interface 3may take on different forms in alternative embodiments. For example, inone alternative embodiment the interface could be in the form of a voiceinterface instead of a text driven interface. Alternatively theinterface could be in the form of a software based function (routine)call that contains the statement. Persons skilled in the art will alsoappreciate that the information stored using the embodiment of thepresent invention could be a range of different information. Forexample, the information maybe a line of text used to start up or shutdown an application. In this scenario instead of outputting theinformation to the dialog box 5, the information could be processed toautomatically start up the relevant application.

It will be appreciated by those skilled in the art that some of thecomponents of the present invention that alternative embodiments couldbe implemented using dedicated hardware instead of software.

Throughout this specification the word “record” refers to a singleKnowledge Item that may be represented as a single row in a table or toa Knowledge Object that consists of a collection of Knowledge Items thatmay be represented by rows in a table.

Those skilled in the art will appreciate that the invention describedherein is susceptible to variations and modifications other than thosespecifically described. It should be understood that the inventionincludes all such variations and modifications which fall within thespirit and scope of the invention.

1. A computer implemented process for retrieving information, saidcomputer implemented process comprising: obtaining a statement by aninput comprising a user interface coupled to a computer, said userinterface being arranged to obtain said statement; and providing aprocessing means using said computer and arranged to: select a firstrecord based on an element of said statement; select a second recordthat references said first record; examine said second record toidentify a third record; and retrieve said information by using saidthird record; wherein said processing means is arranged to select saidfirst record by: locating a fourth record that comprises informationcorresponding to said element; obtaining an identifier of said fourthrecord; and determining whether said first record comprises saididentifier, wherein said first record is selected when said first recordis determined that said first record comprises said identifier; whereinsaid processing means is arranged to retrieve said information by:examining said third record to identify at least one fifth record; andobtaining said information from said fifth record; wherein said thirdrecord is associated with said first record; wherein said input furthercomprising: said user interface arranged to receive a natural languagestatement; and a parser arranged to create an intermediate languagestatement based on a parsing of said natural language statement, whereinsaid processing means is arranged to use said intermediate languagestatement as said statement; wherein said first, second, third, fourthand fifth records each contain multiple fields.
 2. The computerimplemented process as set forth in claim 1, wherein said first, saidsecond, said third, said fourth and said fifth record are contained in asingle table.
 3. A computer implemented method of retrievinginformation, said method comprising the steps of: obtaining a statement;selecting a first record based on an element of said statement;selecting a second record that references said first record; examiningsaid second record to identify a third record; retrieving saidinformation by using said third record; locating a fourth record thatcomprises information corresponding to said element; obtaining anidentifier of said fourth record; determining whether said first recordcomprises said identifier, wherein said first record is selected whensaid first record is determined that when said first record comprisessaid identifier; examining said third record to identify at least onefifth record; and obtaining said information from said fifth record;wherein said third record is associated with said first record; whereinsaid step of obtaining said statement further comprises the steps of:receiving a natural language statement; creating an intermediatelanguage statement based on a parsing of said natural languagestatement; and using said intermediate language statement as saidstatement; wherein said first, second, third, fourth and fifth recordseach contain multiple fields.
 4. The method as set forth in claim 3,wherein said first, said second, said third, said fourth and said fifthrecord are contained in a single table.
 5. A computer readable storagemedium comprising a plurality of instructions, which when executed,causes the computer to perform the steps of: obtaining a statement;selecting a first record based on an element of said statement;selecting a second record that references said first record; examiningsaid second record to identify a third record; retrieving saidinformation by using said third record; locating a fourth record thatcomprises information corresponding to said element; obtaining anidentifier of said fourth record; determining whether said first recordcomprises said identifier, wherein said first record is selected whensaid first record is determined that when said first record comprisessaid identifier; examining said third record to identify at least onefifth record; and obtaining said information from said fifth record;wherein said step of obtaining said statement further comprises thesteps of: receiving a natural language statement; creating anintermediate language statement based on a parsing of said naturallanguage statement; and using said intermediate language statement assaid statement; wherein said third record is associated with said firstrecord; wherein said first, second, third, fourth and fifth records eachcontain multiple fields.
 6. The computer readable storage medium as setforth in claim 5, wherein said first, said second, said third, saidfourth and said fifth record are contained in a single table.
 7. Thecomputer implemented process for storing information, said computerimplemented process comprising: obtaining a statement by an inputcomprising a user interface coupled to a computer, said user interfacebeing arranged to obtain said statement; providing a processing meansusing said computer and arranged to: create a first record that isidentified based on an element of said statement; create a second recordthat references said first record and which is examined to identify athird record; and arranging said third record such that said thirdrecord is used to retrieve said information; wherein said processingmeans is arranged to create said first record by: creating a fourthrecord that comprises information corresponding to said element;obtaining an identifier of said fourth record; and setting said firstrecord such that said first record comprises said identifier; whereinsaid processing means is arranged to arrange said third record such thatsaid third record is examined to identify at least one fifth record,said processing means operable to create said fifth record such thatsaid fifth record comprises said information; wherein said input furthercomprising: said user interface arranged to receive a natural languagestatement; and a parser arranged to create an intermediate languagestatement based on a parsing of said natural language statement, whereinsaid processing means is arranged to use said intermediate languagestatement as said statement; wherein said third record is associatedwith said first record; wherein said first, second, third, fourth andfifth records each contain multiple fields.
 8. The computer implementedprocess as set forth in claim 7, wherein said first, said second, saidthird, said fourth and said fifth record are contained in a singletable.
 9. A computer implemented method of storing information, themethod comprising the steps of: obtaining a statement; creating a firstrecord that is identified based on an element of said statement;creating a second record that references said first record and which isexamined to identify a third record; arranging said third record suchthat said third record is used to retrieve said information; creating afourth record that comprises information corresponding to said element;obtaining an identifier of said fourth record; setting said first recordsuch that said first record comprises said identifier; arranging saidthird record such that said third record identifies at least one fifthrecord; and arranging said fifth record such that said fifth recordcomprises said information; wherein said step of obtaining the statementfurther comprises the steps of: receiving a natural language statement;creating an intermediate language statement based on a parsing of saidnatural language statement; and using said intermediate languagestatement as said statement; wherein said third record is associatedwith said first record; wherein said first, second, third, fourth andfifth records each contain multiple fields.
 10. The computer implementedmethod as set forth in claim 9, wherein said first, said second, saidthird, said fourth and said fifth record are contained in a singletable.
 11. The computer implemented method as set forth in claim 10,wherein said fields being labeled as at least the following comprising:an Id field identifying said first, second, third, fourth and fifthrecord respectively, a Relationship field indicating a relationshipbetween said first, second, third, fourth and fifth record containingsaid field with a collection of said first, second, third, fourth andfifth records; a Negate field creating a negative style relationships tonegate said Relationship field; a Parent Id field linking said first,second, third, fourth and fifth records together; a Concept Id fieldbeing a pointer that points to at least one of said first, second,third, fourth and fifth records; a Value Id field being a pointer thatpoints to at least one of said first, second, third, fourth and fifthrecords; a Value field being binary data; and a Valid field being a flagclearable when information stored in said First, second, third, fourthand fifth records respectively is no longer valid, said flag beingstorable.
 12. The computer implemented process as set forth in claim 2,wherein said fields being labeled as at least the following comprising:an Id field identifying said first, second, third, fourth and fifthrecord respectively; a Relationship field indicating a relationshipbetween said first, second, third, fourth and fifth record containingsaid field with a collection of said first, second, third, fourth andfifth records; a Negate field creating a negative style relationships tonegate said Relationship field; a Parent Id field linking said first,second, third, fourth and fifth records together; a Concept Id fieldbeing a pointer that points to at least one of said first, second,third, fourth and fifth records; a Value Id field being a pointer thatpoints to at least one of said first, second, third, fourth and fifthrecords; a Value field being binary data; and a Valid field being a flagclearable when information stored in said First, second, third, fourthand fifth records respectively is no longer valid, said flag beingstorable.
 13. The method as set forth in claim 4, wherein said fieldsbeing labeled as at least the following comprising: an Id fieldidentifying said first, second, third, fourth and fifth recordrespectively; a Relationship field indicating a relationship betweensaid first, second, third, fourth and fifth record containing said fieldwith a collection of said first, second, third, fourth and fifthrecords; a Negate field creating a negative style relationships tonegate said Relationship field; a Parent Id field linking said first,second, third, fourth and fifth records together; a Concept Id fieldbeing a pointer that points to at least one of said first, second,third, fourth and fifth records; a Value Id field being a pointer thatpoints to at least one of said first, second, third, fourth and fifthrecords; a Value field being binary data; and a Valid field being a flagclearable when information stored in said First, second, third, fourthand fifth records respectively is no longer valid, said flag beingstorable.
 14. The computer as set forth in claim 6, wherein said fieldsbeing labeled as at least the following comprising: an Id fieldidentifying said first, second, third, fourth and fifth recordrespectively; a Relationship field indicating a relationship betweensaid first, second, third, fourth and fifth record containing said fieldwith a collection of said first, second, third, fourth and fifthrecords; a Negate field creating a negative style relationships tonegate said Relationship field; a Parent Id field linking said first,second, third, fourth and fifth records together; a Concept Id fieldbeing a pointer that points to at least one of said first, second,third, fourth and fifth records; a Value Id field being a pointer thatpoints to at least one of said first, second, third, fourth and fifthrecords, a Value field being binary data; and a Valid field being a flagclearable when information stored in said First, second, third, fourthand fifth records respectively is no longer valid, said flag beingstorable.
 15. The computer implemented process as set forth in claim 8,wherein said fields being labeled as at least the following comprising:an Id field identifying said first, second, third, fourth and fifthrecord respectively; a Relationship field indicating a relationshipbetween said first, second, third, fourth and fifth record containingsaid field with a collection of said first, second, third, fourth andfifth records; a Negate field creating a negative style relationships tonegate said Relationship field; a Parent Id field linking said first,second, third, fourth and fifth records together; a Concept Id fieldbeing a pointer that points to at least one of said first, second,third, fourth and fifth records; a Value Id field being a pointer thatpoints to at least one of said first, second, third, fourth and fifthrecords; a Value field being binary data; and a Valid field being a flagclearable when information stored in said First, second, third, fourthand fifth records respectively is no longer valid, said flag beingstorable.